Division, reciprocal, square root, approximations, and other arithmetic operations are often used in critical applications that impact the performance of a data processing unit. This is especially true of integer divisions which are relevant in, for instance, the JAVA, C++ and Oracle programming languages. Integer division is typically used for fast hashing in many current software routines.
A predominant and fast divide algorithm currently available is SRT based division (named for its creators, Sweeney, Robertson and Tocher). SRT division, which is a popular method for division in many microprocessor implementations, is similar to non-resorting division, but SRT division uses a lookup table based on the dividend and the divisor to determine each quotient digit. The size and the values within the lookup table may depend upon the cycle time and the implementation.
Any error within the lookup table will lead to an incorrect result. Exhaustive simulation that guarantees the correctness of such a lookup table is not always possible.